package com.app.service.article;

import com.app.domain.po.article.ArticleCountPo;
import com.app.domain.vo.article.ArticleCountVo;
import com.app.domain.vo.article.ArticleVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 文章计数器方法
 */
public interface ArticleCountService extends IService<ArticleCountPo> {


    /**
     * 批量查询文章计数器
     *
     * @param articleIds 文章ID集合
     */
    List<ArticleCountVo> batchSelectArticleCounts(List<Long> articleIds);

    /**
     * 查询文章计数器
     *
     * @param articleId 文章ID
     */
    ArticleCountVo selectArticleCounts(Long articleId);

    /**
     * 更新文章点赞数量
     *
     * @param articleId 文章ID
     */
    void updateArticleLikes(Long articleId);

    /**
     * 更新文章访问数量
     *
     * @param articleId 文章ID
     */
    void updateArticleLooks(Long articleId);

    /**
     * 更新文章评论数量
     *
     * @param articleId 文章ID
     * @param count     评论数量
     */
    void updateArticleComments(Long articleId, Integer count);

    /**
     * 批量写入文章计数器
     *
     * @param articleVos 文章Vos
     */
    void batchSetArticleCounts(List<ArticleVo> articleVos);

}